package com.hutao.service.serviceImpl;

import com.hutao.mapper.CartMapper;
import com.hutao.mapper.ProductMapper;
import com.hutao.pojo.Cart;
import com.hutao.pojo.Product;
import com.hutao.service.CartService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class CartServiceImpl implements CartService {

    @Autowired
    private CartMapper cartMapper;

    @Autowired
    private ProductMapper productmapper;

    /**
     * 添加购物车
     * 需要先根据cid当前登录人的cid查询该商品是否存在，如果存在，不是新增加数据，而是修改该商品的数量
     * 如果不存在，新增加数据
     */
    public int insertCart(int cid, int pid, int numbers) {
        //需要先根据cid和商品pid查询
        int count = 0;
       Cart cart = cartMapper.getCartProduct(cid,pid);
       if(cart == null){//购物没有数据，插入购物车
           count = cartMapper.insertCart(cid,pid,numbers);
       }else{//购物车中有数据,修改商品的量
           //新的购买的数量为 = 现在再次购买的数量 + 原来数据库中的商品的数量
           int newNumber = numbers + cart.getNumbers();
           count = cartMapper.updateCart(cid,pid,newNumber);
       }
       return count;

    }

    /**
     *  //通过当前登录人的cid获取商品id和数量
     */
    public List<Product> getProduct(int cid){

        //通过当前的登录人的cid,获取到该用户的购物车的商品的id和购买的商品的数量
        List<Cart> cartList = cartMapper.getCartByCid(cid);
          /*
            productid  numbers
            3           1
            1           1
         */
        List<Product> productList = new ArrayList<Product>();
        for (Cart cart : cartList) {
            int pid = cart.getProductid();//3  ,1
            //根据购物车中的商品id拿到所有的商品信息
            Product product = productmapper.getProductById(pid);
            product.setNumber(cart.getNumbers());
            productList.add(product);
        }
        return productList;
    }

    //删除购物车
    public int delCart(int cid, int productId) {
        return cartMapper.delCart(cid,productId);
    }
}
